/* -------------------------------------------------------------------------
 * This is a modified version of the rng source found on:
 * http://www.cs.wm.edu/~va/software/park/park.html which uses the Park-Miller
 * generator. For more details see:
 *       "Random Number Generators: Good Ones Are Hard To Find"
 *                   Steve Park and Keith Miller
 *              Communications of the ACM, October 1988
 * -------------------------------------------------------------------------
 * File:   RandLib.h
 * Author: ekto
 *
 */

#ifndef _RANDLIB_H
#define _RANDLIB_H

#include <iostream>
#include <typeinfo>
#include "Vector2.h"

// <editor-fold defaultstate="collapsed" desc="Generator core functions">
namespace ParkMillerRNG
{
double Uniform(double a, double b);
long Equilikely(long a, long b);
double Random(void);
}
// </editor-fold>

namespace Math
{

void ReinitRand(long x);

int Random(int min, int max);
float Random(float min, float max);
double Random(double min, double max);
Math::Vector2F Random(const Math::Vector2F& min, const Math::Vector2F& max);


bool EventCheck(float chance);

}

#endif /* _RANDLIB_H */
